/**
 *  @Package: com.yidu.drug.action
 *  @author: Administrator
 *  @date: 2018年8月14日 下午7:47:28
 */
package com.yidu.drug.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.drug.common.Message;
import com.yidu.drug.common.Page;
import com.yidu.drug.model.DrugModuleModel;
import com.yidu.drug.service.DrugModuleService;


/**
 * 类的描述  模块的action层
 * @author 祝浪
 * @date 2018年8月14日
 */
@Controller
@RequestMapping("drugModule")
public class DrugModuleAction {
	/**
	 * 药品Service接口
	 */
	@Resource
	private DrugModuleService drugModuleService;
	
	/**
	 * 查询所有功能模块
	 * @param session 存储空间
	 * @param vo 模块对象
	 * @param page 页数
	 * @param limit 一页显示的行数
	 * @return Map集合
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String, Object> findAll(HttpSession session,DrugModuleModel vo,int page,int limit) {
		//创建一个页面对象
		Page pageObj = new Page();
		//将传过来的行数和页数加入页面对象
		pageObj.setRows(limit);
		pageObj.setPage(page);
		//调用Service里的查询所有的方法查询
		List<DrugModuleModel> list = drugModuleService.findAll(session,vo, pageObj);
		//创建Map集合
		Map<String, Object> map = new HashMap<>();
		//加入code的信息
		map.put("code", 0);
		//加入要返回的信息提示
		map.put("msg", "响应成功！");
		//加入行数，行数调用Service的方法查
		map.put("count", drugModuleService.findTotalRows(session,vo));
		//加入集合信息
		map.put("data", list);
		return map;
	}
	/**
	 * 查询所有权限内的模块
	 * @return 模块集合
	 */
	@RequestMapping("/findAllByGroup")
	@ResponseBody
	public List<DrugModuleModel> findAllByGroup() {
		//分组查询所有模块
		List<DrugModuleModel> list = drugModuleService.findAllByGroup();
		return list;
	}
	/**
	 * 删除模块
	 * @param vo 模块对象
	 * @return
	 */
	@RequestMapping("/delete")
	@ResponseBody
	public Message delete(DrugModuleModel vo) {
		//调用方法删除
		drugModuleService.delete(vo.getModId());
		Message msg = new Message(0, "删除成功");
		return msg;
	}
	
	/**
	 * 增加或修改模块
	 * @param vo 模块对象
	 * @return 操作信息
	 */
	@RequestMapping("/saveOrUpdate")
	@ResponseBody
	public Message saveOrUpdate(DrugModuleModel vo) {

		//调用Service层的方法
		drugModuleService.saveOrUpdate(vo);
		//防止出现缓存现象将vo赋值为空
		vo = null;
		//加入返回的信息
		Message msg = new Message(1, "操作成功");
		return msg;
	}
	/**
	 * 根据ID查询模块
	 * @param vo 模块
	 * @return 模块
	 */
	@RequestMapping("/findById")
	@ResponseBody
	public DrugModuleModel findById(DrugModuleModel vo) {
		DrugModuleModel revo = drugModuleService.findById(vo.getModId());
		return revo;
	}
}
